Sistemul de operare MS-DOS (MicroSoft Disk Operating System) a apărut odată cu primele calculatoare IBM-PC (1981). El este un sistem de operare pe 16 biti, ce mosteneste elemente din predecesorul său CP/M, dar oferă un control mult mai bun asupra computerului. El a fost proiectat să ruleze în mod real pe procesoare Intel si a fost folosit mult în perioada 1981-1995. Desi se presupune că în prezent el a dispărut, portiuni de MS-DOS mai pot fi găsite încă în sistemele Windows actuale, fiind folosit în principal pentru compatibilitatea cu programele vechi. E de preferat să stiti cum lucrează sistemul DOS pentru a întelege cum lucrează programele mai vechi.
Pentru a întelege mai usor acest ghid, e bine să aveti ceva cunostinte de Windows (3.1, 95/98/ME, NT/2k/XP) sau de DOS.
Înapoi la începutSistemul MS-Dos a fost proiectat pentru a fi mono-utilizator si mono-task, lucru care nu mai este suficient în ziua de azi. Rigiditatea sistemului si dorinta compatibilitătii cu versiunile anterioare au făcut ca aceste impedimente să nu poată fi depăsite, si astfel, în timp, sistemul DOS nu a mai putut tine pasul cu evolutia computerelor si cu cerintele utilizatorilor si astfel a trebuit să fie înlocuit de Windows 95.
De la lansarea sa în 1981 si până în prezent, sistemul MS-DOS a avut mai multe versiuni. Versiunea 1.0 era extrem de limitată, neavând suport nici chiar pentru directoare! Versiunea 2.0 a integrat mai multe concepte din sistemul Microsoft XENIX (o variantă de UNIX), ceea ce a dus la schimbări majore în structura sistemului DOS. A fost adăugat suportul pentru directoare si pentru discuri (limitat la 32MB). Versiunea 4.0 a fost iarăsi importantă, deoarece a dus la dezvoltarea flexibilitătii sistemului (sunt recunoscute discuri mai mari, apar managere de memorie). Versiunile 6.0, 6.2 si 6.22 au fost cele mai răspândite si folosite versiuni de DOS. Totusi, ele au fost si ultimele versiuni de DOS "adevărate". Începând cu 1995, Microsoft a lansat MS-DOS 7.0 împreună cu noul sistem de operare Windows '95. Acesta era defapt un MS-DOS 6.22 redus doar la componentele de bază. Windows 98, ME, NT, 2k, XP contin doar un nucleu redus de MS-DOS, folosit în special pentru compatibilitatea cu programele mai vechi.
Sistemul DOS a fost distribuit si de alte firme, în afară de Microsoft. De exemplu, varianta de DOS distribuită de IBM se numea PC-DOS, iar cea distribuită de Novell se numea DR-DOS (ea a rezistat mai mult decât MS-DOS). Diferentele dintre aceste sisteme erau destul de mici.
Înapoi la începutNucleul sistemului MS-DOS constă în 3 fisiere. Acestea se află în directorul rădăcină al sistemului (de obicei pe discul C): C:\. Fisierele se numesc:
Io.sys este cel mai important fisier, si era încărcat primul, la sfârsitul POST (Power On Self Test). Rolul lui este de a stabili o legătură între componenta hardware (procesor, hard-disk, memorie) si software. Desi avea un rol important, Io.sys era destul de rudimentar... El oferea suport doar pentru lucrurile de bază (lucrul cu procesorul/întreruperi, lucrul cu hard-discul, discheta, tastatura si monitorul). Alte dispozitive care puteau exista în sistem trebuiau să folosească propriile drivere (programe ce fac legătura între software si hardware).
Msdos.sys era încărcat de Io.sys si de obicei initializa mediul DOS. În versiunile mai noi de DOS, acest fisier a fost redus si nu mai contine decât initializarea unor variabile globale de sistem. De exemplu, asa arată un Msdos.sys în Windows 98:
[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C
UninstallDir=C:\
[Options]
BootMulti=1
BootGUI=1
;
;The following lines are required for compatibility with other programs.
;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb
; Câteva rânduri au fost omise...
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs
BootWarn=0
DoubleBuffer=1
AutoScan=1
În continuare sunt prelucrate fisierele de configurare config.sys si autoexec.bat. După parcurgerea lor este încărcat interpretorul de comenzi, command.com. Dacă fisierele de configurare lipsesc, sistemul este încărcat cu configuratia minimă.
Rolul interpretorului de comenzi este să preia si să execute comenzi de la utilizator. El contine unele comenzi predefinite (copy, del, cd, dir, etc), iar comenzile pe care nu le găseste intern sunt căutate pe calea implicită si dacă tot nu sunt găsite, e afisat mesajul Bad command or filename. Pe piată există mai multe interpretoare de comenzi, ce pot înlocui cu succes command.com-ul, acestea oferind în plus comenzi suplimentare sau o usurintă mai mare în folosire (de exemplu NDOS.com sau 4DOS.com). Fără interpretor de comenzi, sistemul porneste, dar nu poate primi si executa comenzi (afisează un prompt prin care cere specificarea interpretorului de comenzi).
Deoarece la început sistemul DOS transfera fiecărui program controlul total asupra calculatorului, în prezent este destul de dificil pentru versiunile DOS să impună restrictii pe sistem. Asta înseamnă că sistemul DOS nu prea poate mentine controlul asupra sistemului - dacă un program se blochează, el va bloca întreg sistemul!
Din păcate, problemele nu se termină aici... Deoarece sistemul DOS nu reusea să se impună, majoritatea programelor care aveau nevoie de resurse sau de un mediu stabil, "înlăturau" temporar sistemul DOS si îsi porneau propriul sistem de control, iar când terminau lucrul, reactivau sistemul DOS. Lipsa restrictiilor si a controlului făcea ca sistemul să se poată bloca si din cauza unui bug dintr-un program...
Înapoi la începutSistemul DOS initial recunostea si functiona doar cu 640k de memorie RAM (care erau considerati suficienti pentru orice program în 1981). Totusi, pe măsură ce au apărut programe noi, a fost nevoie de mai multă memorie, iar sistemul DOS a fost nevoit să apeleze la programe suplimentare pentru a putea accesa această memorie. Pentru sistemul DOS există mai multe tipuri de memorie:
Pentru a putea folosi memoria extinsă si expandată, sistemul DOS trebuie să încarce un manager de memorie (cele incluse sunt himem.sys si emm386.exe). Aici, memoria era împărtită în "pagini" de 64k si era copiată în memoria conventională dacă programul avea nevoie de ea. Dacă programul nu folosea pe moment o "pagină" de memorie din memoria conventională, aceasta era transferată temporar în memoria extinsă/expandată si astfel se elibera memorie conventională. Problema cu acest sistem era că e destul de limitat si încet.
Toate programele DOS se încarcă si se execută în memoria conventională. Folosirea memoriei extinse/expandate e practic un "truc" folosit de programatori. Unele programe preferă memoria extinsă, altele memoria expandată, iar altele vin cu propriul manager de memorie si îsi administrează resursele individual (e mai eficient). De exemplu Microsoft Windows 3.1 are nevoie de himem.sys pentru a se putea încărca, iar unele jocuri dezactivează managerele de memorie si încarcă DOS4GW (un manager de memorie protejată).
Principalele probleme legate de memorie pe care le are sistemul DOS sunt date de lipsa memoriei conventionale. După pornirea sistemului, toate programele îsi lasă "amprenta" în memoria conventională si astfel s-ar putea ca anumite programe să dea eroare la pornire. Pentru a vedea câtă memorie mai aveti liberă puteti apela comanda mem (De exemplu: C:\>mem). Pentru a face rost de mai multă memorie conventională liberă sunt două optiuni:
Principalele fisiere de configurare ale sistemului DOS sunt config.sys si autoexec.bat. Ele sunt responsabile de initializarea unor dispozitive speciale (cd-rom, placă de sunet, scanner, etc), de stabilirea unor variabile globale sau de rularea unor programe.
Un model de config.sys pentru MS-DOS 6.2x
În primul rând, liniile care încep cu rem sunt comentarii si nu sunt interpretate de sistem.
Prima parte a fisierului config.sys configurează programele care gestionează memoria extinsă si pe cea expandată (himem.sys pentru memoria extinsă si emm386.exe pentru cea expandată). Fără ele sistemul nu ar avea acces la mai mult de 640k de RAM.
A doua parte a fisierului config.sys setează anumite optiuni ale sistemului DOS. De exemplu stabilirea parametrului BUFFERS spune sistemului DOS câte zone temporare de citire/scriere poate folosi pentru discuri. Parametrul FILES spune sistemului DOS câte fisiere pot fi deschise simultan, iar LASTDRIVE defineste ultima literă de disc disponibilă (cu cât e mai mică, cu atât se economiseste mai multă memorie)
A treia parte a fisierului config.sys initializează driverele pentru dispozitive. Linia DEVICE încarcă dispozitivul în memoria conventională, iar linia DEVICEHIGH încarcă driver-ul în memoria superioară (pentru a libera memoria conventională).
Ultima parte a fisierului config.sys stabileste interpretorul de comenzi (command.com). Această linie poate lipsi, si sistemul va porni cu intepretorul implicit (c:\command.com).
Din config.sys pot lipsi anumite comenzi (chiar toate), si astfel se poate stabili o altă configuratie. În sistemele Windows fisierul config.sys a fost redus si e recomandabil să fie chiar gol. El mai există doar pentru compatibilitatea cu programele mai vechi. Totusi, e bine să aveti la îndemână un fisier gata configurat pentru a putea porni sistemul în mod DOS în mod eficient. Iată un exemplu:
![]() |
ATENTIE! Dacă config.sys într-un mediu Windows contine linia DOS=SINGLE, sistemul va porni de fiecare dată în mod DOS, fără a porni sistemul Windows! |
Fisierul autoexec.bat e responsabil pentru stabilirea variabilelor globale ale sistemului si pornirea unor programe (de configurare sau rezidente în memorie). Iată un exemplu de autoexec.bat pentru DOS 6.2x
Scopul comenzilor este următorul:
| @ECHO OFF | Împiedică afisarea pe ecran a comezilor lansate în fisier, de exemplu, la lansarea comenzii "SET BLASTER = A220 I5 D1 T4", pe ecran nu se va vedea acel rând! Comanda ECHO mai are rolul de a afisa text pe ecran, de exemplu "ECHO Ms-Dos te salută!" duce la afisarea pe ecran a textului "Ms-Dos te salută!" | ||
| SET BLASTER = A220 I5 D1 T4 | Setează variabila BLASTER. Această variabilă este folosită în special de jocuri pentru a seta sunetul. Valorile au următoarea semnificatie:
|
||
| SET TEMP = C:\Temp | Setează directorul temporar folosit de sistem | ||
| PROMPT $P$G | Determină modul în care arată promptul sistemului (C:\>). Acesta poate fi modificat să arate, de exemplu, si ora curentă prin comanda PROMPT [$t]$P$G iar promptul ar afisa "[18:17:56.32]C:\>" | PATH=C:\Dos;C:\Windows;C:\; | Este o variabilă foarte importantă, ce contine calea către directoarele cele mai importante. Dacă încercati să lansati în executie un program si acesta nu este în directorul curent, interpretorul de comenzi îl va căuta si în directoarele din această listă |
| LH /S C:\Windows\smartdrv.exe 2048 | Încarcă utilitarul smartdrv.exe în memoria superioară. Acest utilitar facilitează lucrul cu discurile (oferă acces rapid la date). | ||
| LH C:\Windows\Mscdex.exe /s /d:MSCD001 | Activează CD-ROM-ul, folosind configuratia din config.sys | ||
| C:\Nc\Nc.exe | Lansează în executie utilitarul nc.exe (Norton Commander) |
Pentru a afla mai multe despre comenzile din fisierele bat consultati documentatia dos (help.com). Documentatia pentru Dos 6.22 este distribuită cu acest fisier.
Pentru sistemul Windows (95, 98) e indicat ca fisierul autoexec.bat să fie gol sau să contină doar linia "PATH=...". E totusi indicat să aveti la îndemână un autoexec.bat configurat pentru a putea folosi sistemul si în mod DOS.
De exemplu, fisierul autoexec.bat pe care îl folosesc în mod DOS arată cam asa:
Sistemul DOS a introdus un sistem de fisiere propriu care s-a răspândit si mai există si azi în sistemele actuale. Primele versiuni de DOS lucrau cu sistemul FAT12 (FAT - File Allocation Table) care era limitat doar la discuri de sub 32MB. Versiunea DOS 3.3 a introdus sistemul FAT16 (cunoscut si sub numele de FAT) ce putea recunoaste discuri de până la 2GB. Din cauza unor restrictii ale BIOS-urilor mai vechi, sistemele nu puteau folosi decât discuri de până la 512MB. Principalele caracteristici ale sistemelor FAT12/FAT sunt faptul că nu fac distinctia între caractere mici si caractere mari (fisierul autoexec.bat e acelasi cu AUTOEXEC.BAT sau AutoExec.Bat) iar numele fisierelor respectă regula 8.3 (8 caractere pentru numele fisierului - fără spatii iar 3 caractere pentru extensie).
Odată cu aparitia Windows 95 OSR2 si MS-Dos 7.1 a apărut si suportul pentru FAT32, un sistem de fisiere aparent fără limite si care oferă suport pentru nume lungi de fisiere (255 de caractere + spatii). Totusi, un disc FAT32 nu va fi recunoscut de un MS-DOS mai mic ca 7.1, dar un disc FAT12 va fi recunoscut de un MS-DOS mai nou.
Sistemul FAT12 mai este folosit si în prezent pentru lucrul cu discuri mici (în special dischete), sistemul FAT mai este folosit pe discuri mai mici de 512MB, iar în Windows-urile moderne sistemul de fisiere este FAT32 (sau NTFS pentru Windows NT/2000/XP).
Principalele utilitare care administrează sistemul de fisiere sunt:
![]() |
ATENTIE! Formatarea duce la pierderea tuturor datelor de pe acea partitie! |
![]() |
ATENTIE! Utilitarul poate sterge partitii! |
Mai multe informatii despre aceste utilitare găsiti în help-ul sistemului (help.com)
Înapoi la începutSistemul DOS stabileste tipul unui fisier prin extensia lui. Extensia este ultima parte din numele unui fisier, delimitată de numele acestuia printr-un punct (.). De exemplu fisierul bootsect.dat are numele bootsect iar extensia dat. În sistemul DOS extensia are maxim 3 caractere, iar acest lucru s-a păstrat si în Windows, unde extensile au de obicei 3 caractere.
Iată principalele tipuri de fisiere:
| *.exe | Fisiere executabile standard. |
| *.com | Fisiere executabile ce contin imaginea programului. Practic continutul fisierului este copiat direct în memorie si astfel rezultă programul care rulează. Principalul dezavantaj este acela că sunt limitate ca memorie. Sunt folosite de obicei pentru a lansa programe mai mari (cum ar fi win.com) |
| *.bat | Fisiere de comenzi (batch). Contin o listă cu comenzi ce sunt executate în ordine în mod automat. Au posibilitatea de a folosi variabile, structuri repetitive si de verificare (for, if). Seamănă cu un limbaj de programare (în special cu Qbasic), dar este mult mai simplu si mai limitat. |
| *.txt | Fisiere text. Pot fi editate cu utilitarul edit.com |
| *.sys | De obicei sunt drivere de sistem, dar pot si fisiere de configurare. |
| *.dat | Contine diferite date folosite de un anumit program |
| *.cfg | De obicei e fisier de configuratie, dar nu întotdeauna în mod text |
| *.zip *.arj | Arhive de diferite tipuri. MS-DOS nu oferă suport nativ pentru ele asa că trebuie să folositi un program de dezarhivare |
| *.bak | Fisier back-up (copie de sigurantă) |
| *.tmp | Fisier temporar |
Mai există si alte extensii de fisiere, dar ele sunt folosite de obicei de alte programe (cum ar fi MS Windows).
Înapoi la începutWildcards - acesta este numele dat caracterelor care înlocuiesc alte caractere. În sistemul DOS caracterul * înlocuieste oricâte caractere din numele unui fisier (inclusiv nici un caracter). De exemplu comanda del *.txt va sterge toate fisierele cu extensia txt indiferent de nume, din directorul curent. Pentru a sterge toate fisierele care încep cu fis si au extensia txt puteti da comanda del fis*.txt. Sintagma *.* reprezintă toate fisierele din directorul curent, indiferent de nume sau extensie. Mai există un caracter de înlocuire, dar care înlocuieste un singur caracter din numele fisierului. Acest caracter este "?". De exemplu, pentru a sterge toate fisierele care au al doilea caracter p si al treilea caracter al extensiei t puteti da comanda del ?p*.??t. Cele două semne de întrebare din extensie nu pot fi înlocuite cu * pentru că si fisierul api32.bt ar corespunde descrierii! Puteti experimenta cu wildcard-urile, dar vă recomand să folositi comanda dir în loc de del :)
Iată o listă cu principalele comenzi DOS si rolul lor. Majoritatea comenzilor suportă wildcard-uri.
Notă: Majoritatea comenzilor pot oferi informatii despre cum pot fi folosite. Pentru a vizualiza acest mini-help, tastati: nume_comandă /? . (De exemplu copy /?).
| Comandă | Observatii |
| copy sursă destinatie | Copiază fisierul sursă in destinatie. De exemplu copy C:\dos\fisier1.txt a:\ va copia fisierul fisier1.txt din C:\dos în directorul rădăcină al dischetei A:. |
| cd director | Comută pe directorul nou. De exemplu cd C:\windows\system va trece automat în directorul C:\windows\system dacă există. Comanda cd docs comută în directorul docs pornind de la directorul curent (adică dacă comanda e dată în directorul C:\dos\test, se va ajunge la directorul C:\dos\test\docs). Pentru a ajunge la directorul superior dati comanda cd .., pentru a ajunge la directorul rădăcină dati comanda cd \, iar pentru a afisa directorul curent, dati doar comanda cd |
| dir | Afisează continutul directorului curent. Dacă dati dir C:\windows va fi afisat continutul directorului windows. Pentru a afisa toate fisierele (si cele ascunse) ordonate după nume, folositi parametrii /a /o: dir /a /o. Pentru a afisa continutul directorului pagină cu pagină, adăugati si parametrul /p: dir /p. |
| ren sursă destinatie | Mută/redenumeste fisierul în calea specificată. Ex: ren C:\windows\win.com win.bak |
| md nume_director | Creează un director (si directoarele intermediare dacă e nevoie) |
| del nume_fisier | Sterge fisierul/fisierele respectiv(e). NU sterge directoare! |
| rm nume_director | Sterge directorul respectiv NUMAI dacă este GOL! |
| deltree nume_director | Sterge directorul respectiv, fisierele din el si subdirectoarele lui. Pentru a nu cere confirmare la fiecare fisier, folositi parametrul /y: deltree /y C:\dir |
| edit | Porneste Microsoft Editor - un program mic dar puternic pentru editarea fisierelor text. Are interfată grafică intuitivă |
| type fisier.txt | Afisează pe ecran continutul fisierului respectiv. Folositi comanda type c:\fisier.txt |more pentru a afisa fisierul pagină cu pagină. |
| help.com | Porneste sistemul Help pentru DOS. Aici puteti găsi multe informatii despre comenzi si exemple complexe. Sistemul Help pentru DOS 6.22 e inclus cu acest fisier. |
| dosshell | Porneste programul MS DosShell - o interfată grafică nereusită pentru DOS. Mai bine folositi Norton Commander sau Dos Navigator |
Pentru mai multe informatii consultati help-ul sistemului DOS (help.com). Unele comenzi prezentate mai sus s-ar putea să nu functioneze în versiuni DOS mai noi sau mai vechi. Ele au fost preluate din MS-DOS 6.22. Versiunile de DOS ulterioare sunt mai limitate si s-ar putea să nu contină toate comenzile.
Înapoi la începutDesi a trecut multă vreme de la lansarea oficială a ultimei versiuni de DOS, el nu a murit. Mai există încă programe care lucrează (eficient) în mod DOS (utilitare de restaurare, lucru cu discuri, etc.) precum mai există calculatoare destul de slabe pentru a rula Windows 95. Din acest motiv a continuat un timp productia de software pentru MS-DOS. De exemplu, pe site-ul www.mpeg.org există utilitare ce rulează în mod DOS si redau fisiere MP3! Totusi, principala lui utilitate în ziua de azi este ca sistem de operare alternativ ce poate fi folosit când nu mai merge Windows-ul.
Din păcate site-uri suport nu prea mai există - orice problemă aveti, trebuie să încercati un motor de căutare pe web (de exemplu www.google.com). Cu sigurantă veti găsi ceva util!
Înapoi la început